package com.cbg.archives.vo;

import com.cbg.archives.dto.ModularColDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 模块DTO
 *
 * @author wangjuzheng
 * @date 2019-11-14
 **/
@Data
public class ModularVO implements Serializable {

    /**
     * 模块Id
     */
    @ApiModelProperty(value = "模块Id")
    private Long id;

    /**
     * 分类id
     */
    @ApiModelProperty(value = "档案分类id")
    @NotNull(message = "分类id为空")
    private Long archivesId;

    /**
     * 表ID
     */
    @ApiModelProperty(value = "表id")
    @NotNull(message = "表id为空")
    private Long tableId;

    /**
     * 显示样式
     */
    @ApiModelProperty(value = "显示样式")
    @NotBlank(message = "显示样式为空")
    private String displayStyle;

    /**
     * 是否二级搜索
     */
    @ApiModelProperty(value = "是否二级搜索（0否 1是）")
    private Integer isSecondarySearch;

    /**
     * 是否调整显示列
     */
    @ApiModelProperty(value = "是否调整显示列（0否 1是）")
    private Integer isDisplayColumn;

    /**
     * 是否分页
     */
    @ApiModelProperty(value = "是否分页（0否 1是）")
    private Integer isPage;

    /**
     * 每页条数
     */
    @ApiModelProperty(value = "每页条数")
    private Long pageNumber;

    /**
     * 模块名称
     */
    @ApiModelProperty(value = "模块名称")
    @NotBlank(message = "模块名称为空")
    @Length(max = 32, message = "模块名称不能超过32位")
    private String name;

    /**
     * 所需要保存的列信息
     */
    @ApiModelProperty(value = "所需要保存的列信息")
    private List<ModularColDTO> list;
}
